#!/bin/bash
# Based on https://github.com/Photonicsguy/CHIP 
# Enable ADC registers
i2cset -y -f 0 0x34 0x82 0xff

##      REGISTER 00     ##
REG=$(i2cget -y -f 0 0x34 0x00)
STATUS_ACIN=$(($(($REG&0x80))/128))
STATUS_VBUS=$(($(($REG&0x20))/32))
STATUS_CHG_DIR=$(($(($REG&0x04))/4))

REG=$(i2cget -y -f 0 0x34 0x01)
STATUS_CHARGING=$(($(($REG&0x40))/64))
STATUS_BATCON=$(($(($REG&0x20))/32))

BAT_C=0
BAT_D=0

if [ $STATUS_ACIN == 1 ]; then
        # ACIN voltage
        REG=`i2cget -y -f 0 0x34 0x56 w|awk '{print "0x"substr($0,5,2)substr($0,4,1)}'`
        REG=`printf "%d" "$REG"`
        ACIN=`echo "$REG*0.0017"|bc`
        # ACIN Current
        REG=`i2cget -y -f 0 0x34 0x58 w|awk '{print "0x"substr($0,5,2)substr($0,4,1)}'`
        REG=`printf "%d" "$REG"`
        ACIN_C=`echo "$REG*0.000625"|bc`
else
        ACIN=0
        ACIN_C=0
fi

if [ $STATUS_VBUS == 1 ]; then
        # VBUS voltage
        REG=`i2cget -y -f 0 0x34 0x5A w|awk '{print "0x"substr($0,5,2)substr($0,4,1)}'`
        REG=`printf "%d" "$REG"`
        VBUS=`echo "$REG*0.0017"|bc`

        # VBUS Current
        REG=`i2cget -y -f 0 0x34 0x5C w|awk '{print "0x"substr($0,5,2)substr($0,4,1)}'`
        REG=`printf "%d" "$REG"`
        VBUS_C=`echo "$REG*0.000375"|bc`
else
        VBUS=0
        VBUS_C=0
fi

if [ $STATUS_BATCON  ==  1 ]; then
        # Battery Voltage
        REG=`i2cget -y -f 0 0x34 0x78 w|awk '{print "0x"substr($0,5,2)substr($0,4,1)}'`
        REG=`printf "%d" "$REG"`
        VBAT=`echo "$REG*0.0011"|bc`

        if [ $STATUS_CHG_DIR  ==  1 ]; then
                # Battery Charging Current
                REG=`i2cget -y -f 0 0x34 0x7A w|awk '{print "0x"substr($0,5,2)substr($0,4,1)}'`
                REG_C=`printf "%d" "$REG"`
                BAT_C=`echo "scale=2;$REG_C*0.001"|bc`
        else
                # Battery Discharge Current
                REG=`i2cget -y -f 0 0x34 0x7C w|awk '{print "0x"substr($0,5,2)substr($0,4,1)}'`
                REG_D=`printf "%d" "$REG"`
                BAT_D=`echo "scale=2;$REG_D*0.001"|bc`
        fi
        # Battery %
        REG=`i2cget -y -f 0 0x34 0xB9`
        BAT_PERCENT=`printf "%d" "$REG"`
else
        VBAT=0
        BATT_CUR=0
        BAT_PERCENT=0
fi

# Temperature
REG=`i2cget -y -f 0 0x34 0x5E w|awk '{print "0x"substr($0,5,2)substr($0,4,1)}'`
REG=`printf "%d" "$REG"`
THERM=`echo "($REG*0.1)-144.7"|bc`

echo $THERM
echo $ACIN
echo $ACIN_C
echo $VBUS
echo $VBUS_C
echo $VBAT
echo $(echo "$BAT_C-$BAT_D"|bc)
echo $BAT_PERCENT
echo $STATUS_CHARGING
